Odległość
Limit pamięci: 128 MB
W tym zadaniu rozważamy odległość między dodatnimi liczbami całkowitymi, zdefiniowaną w następujący sposób.
Przez pojedynczą operację rozumiemy pomnożenie danej liczby przez liczbę pierwszą1
lub podzielenie jej przez liczbę pierwszą (o ile dzieli się ona bez reszty).
Odległość między liczbami
i
, oznaczana
, to minimalna liczba operacji potrzebnych
do przekształcenia liczby
w liczbę
.
Na przykład,
.
Zauważmy, że faktycznie funkcja
ma cechy odległości - dla dowolnych dodatnich
liczb całkowitych
,
i
zachodzi:
-
odległość liczby od niej samej wynosi 0:
,
-
odległość od
do
jest taka sama, jak od
do
:
, oraz
-
spełniona jest nierówność trójkąta:
.
Dany jest ciąg
![](images/OI19/odl-tex.18.png)
dodatnich liczb całkowitych
![](images/OI19/odl-tex.19.png)
.
Dla każdej liczby
![](images/OI19/odl-tex.20.png)
należy wskazać takie
![](images/OI19/odl-tex.21.png)
, że
![](images/OI19/odl-tex.22.png)
oraz
![](images/OI19/odl-tex.23.png)
jest minimalne.
Wejście
W pierwszym wierszu standardowego wejścia znajduje się jedna liczba całkowita
(
).
W kolejnych wierszach znajdują się liczby
(
),
po jednej w wierszu.
W testach wartych łącznie 30% punktów zachodzi dodatkowy warunek
.
Wyjście
Twój program powinien wypisać na standardowe wyjście dokładnie
wierszy, a w każdym z nich po jednej liczbie całkowitej.
W
-tym wierszu należy wypisać najmniejsze takie
, że:
,
oraz
jest minimalne.
Przykład
Dla danych wejściowych:
6
1
2
3
4
5
6
poprawną odpowiedzią jest:
2
1
1
2
1
2
Autor zadania: Wojciech Śmietanka.
1. Przypomnijmy, że liczba pierwsza to taka liczba całkowita dodatnia, która
ma dokładnie dwa różne dzielniki: jedynkę i siebie samą.